home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Micromail 103 / MicroMail.jar / MessageHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-09-07  |  5.2 KB  |  243 lines

  1. import com.siemens.mp.io.File;
  2. import java.io.ByteArrayInputStream;
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.DataInputStream;
  5. import java.io.DataOutputStream;
  6. import java.util.Vector;
  7.  
  8. public class MessageHandler {
  9.    protected static final int ID_Inbox = 1;
  10.    protected static final int ID_Outbox = 2;
  11.    protected static final int ID_SentItems = 3;
  12.    protected static final int ID_DeletedItems = 4;
  13.    private static int retCode;
  14.    private static int iRecordsNo = -1;
  15.    static final String tempFileName = "box.tmp";
  16.    private static final int buffLen = 2048;
  17.  
  18.    public static void closeFile() {
  19.       try {
  20.          Globals.file.close(Globals.fileDesc);
  21.          System.out.println("File closed: " + Globals.fileDesc);
  22.       } catch (Exception var0) {
  23.       }
  24.  
  25.    }
  26.  
  27.    public static void deleteBox(int var0) {
  28.       try {
  29.          String var1 = getFileName(var0) + Globals.fileExtension;
  30.          System.out.println("deleting file:" + var1);
  31.          File var10000 = Globals.file;
  32.          int var2 = File.delete(var1);
  33.          System.out.println("delete return code:" + var2);
  34.       } catch (Exception var3) {
  35.          ((Throwable)var3).printStackTrace();
  36.       }
  37.  
  38.    }
  39.  
  40.    public static void deleteRecord(int var0, int var1) {
  41.       try {
  42.          try {
  43.             File var10000 = Globals.file;
  44.             File.delete("box.tmp");
  45.          } catch (Exception var6) {
  46.          }
  47.  
  48.          openFile(var0);
  49.          Globals.fileDesc2 = Globals.file2.open("box.tmp");
  50.  
  51.          for(int var2 = 0; var2 < var1; ++var2) {
  52.             Globals.file.seek(Globals.fileDesc, 2048 * var2);
  53.             Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  54.             Globals.file2.seek(Globals.fileDesc2, 2048 * var2);
  55.             Globals.file2.write(Globals.fileDesc2, Globals.byteArray, 0, 2048);
  56.          }
  57.  
  58.          for(int var3 = var1 + 1; var3 < iRecordsNo; ++var3) {
  59.             Globals.file.seek(Globals.fileDesc, 2048 * var3);
  60.             Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  61.             Globals.file2.seek(Globals.fileDesc2, 2048 * (var3 - 1));
  62.             Globals.file2.write(Globals.fileDesc2, Globals.byteArray, 0, 2048);
  63.          }
  64.  
  65.          closeFile();
  66.          Globals.file2.close(Globals.fileDesc2);
  67.          deleteBox(var0);
  68.          String var4 = getFileName(var0);
  69.          File var8 = Globals.file2;
  70.          int var5 = File.rename("box.tmp", var4 + Globals.fileExtension);
  71.          System.out.println("rename:" + var5);
  72.       } catch (Exception var7) {
  73.          MicroMail.printInfo(var7.getClass().getName() + ": " + ((Throwable)var7).getMessage());
  74.          ((Throwable)var7).printStackTrace();
  75.       }
  76.  
  77.    }
  78.  
  79.    public static String getBoxName(int var0) {
  80.       String var1 = "?error?";
  81.       switch (var0) {
  82.          case 1:
  83.             var1 = Resource.getText(52);
  84.             break;
  85.          case 2:
  86.             var1 = Resource.getText(53);
  87.             break;
  88.          case 3:
  89.             var1 = Resource.getText(54);
  90.             break;
  91.          case 4:
  92.             var1 = Resource.getText(55);
  93.       }
  94.  
  95.       return var1;
  96.    }
  97.  
  98.    public static String getFileName(int var0) {
  99.       String var1 = "?error?";
  100.       switch (var0) {
  101.          case 1:
  102.             var1 = "Inbox";
  103.             break;
  104.          case 2:
  105.             var1 = "Outbox";
  106.             break;
  107.          case 3:
  108.             var1 = "Sent";
  109.             break;
  110.          case 4:
  111.             var1 = "Deleted";
  112.       }
  113.  
  114.       return var1;
  115.    }
  116.  
  117.    public static Message getMessage(int var0) {
  118.       Message var1 = new Message();
  119.  
  120.       try {
  121.          Globals.file.seek(Globals.fileDesc, 2048 * var0);
  122.          Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  123.          ByteArrayInputStream var2 = new ByteArrayInputStream(Globals.byteArray);
  124.          DataInputStream var3 = new DataInputStream(var2);
  125.          var1.ID = var0;
  126.          var1.subject = var3.readUTF();
  127.          var1.unread = var3.readBoolean();
  128.          var1.from = var3.readUTF();
  129.          var1.to = var3.readUTF();
  130.          var1.replyTo = var3.readUTF();
  131.          var1.cc = var3.readUTF();
  132.          var1.bcc = var3.readUTF();
  133.          var1.date = var3.readUTF();
  134.          var1.contentType = var3.readUTF();
  135.          int var4 = var3.readInt();
  136.          var3.read(Globals.byteArray, 0, var4);
  137.          var1.body = new String(Globals.byteArray, 0, var4);
  138.          var3.close();
  139.          Object var7 = null;
  140.          var2.close();
  141.          Object var6 = null;
  142.       } catch (Exception var5) {
  143.          MicroMail.printInfo("method getMessage:" + var5.getClass().getName() + ": " + ((Throwable)var5).getMessage());
  144.          ((Throwable)var5).printStackTrace();
  145.       }
  146.  
  147.       return var1;
  148.    }
  149.  
  150.    public static Vector getMessageListByBox(int var0) {
  151.       try {
  152.          Vector var1 = new Vector(iRecordsNo);
  153.  
  154.          for(int var2 = 0; var2 < iRecordsNo; ++var2) {
  155.             var1.addElement(getMessageListItem(var2));
  156.          }
  157.  
  158.          return var1;
  159.       } catch (Exception var3) {
  160.          MicroMail.printInfo("method getAMessagesByBox:" + var3.getClass().getName() + ": " + ((Throwable)var3).getMessage());
  161.          ((Throwable)var3).printStackTrace();
  162.          return null;
  163.       }
  164.    }
  165.  
  166.    public static MessageListItem getMessageListItem(int var0) {
  167.       MessageListItem var1 = new MessageListItem();
  168.  
  169.       try {
  170.          Globals.file.seek(Globals.fileDesc, 2048 * var0);
  171.          Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  172.          ByteArrayInputStream var2 = new ByteArrayInputStream(Globals.byteArray);
  173.          DataInputStream var3 = new DataInputStream(var2);
  174.          var1.subject = var3.readUTF();
  175.          var1.unread = var3.readBoolean();
  176.          var3.close();
  177.          Object var6 = null;
  178.          var2.close();
  179.          Object var5 = null;
  180.       } catch (Exception var4) {
  181.          MicroMail.printInfo("method getMessage:" + var4.getClass().getName() + ": " + ((Throwable)var4).getMessage());
  182.          ((Throwable)var4).printStackTrace();
  183.       }
  184.  
  185.       return var1;
  186.    }
  187.  
  188.    public static void openFile(int var0) {
  189.       try {
  190.          Globals.fileDesc = Globals.file.open(getFileName(var0) + Globals.fileExtension);
  191.          iRecordsNo = Globals.file.length(Globals.fileDesc) / 2048;
  192.          System.out.println("File opened, records No.: " + iRecordsNo);
  193.       } catch (Exception var1) {
  194.       }
  195.  
  196.    }
  197.  
  198.    public static void storeMessage(Message var0, int var1) {
  199.       ByteArrayOutputStream var3 = new ByteArrayOutputStream();
  200.       DataOutputStream var4 = new DataOutputStream(var3);
  201.  
  202.       try {
  203.          var4.writeUTF(var0.subject);
  204.          var4.writeBoolean(var0.unread);
  205.          var4.writeUTF(var0.from);
  206.          var4.writeUTF(var0.to);
  207.          var4.writeUTF(var0.replyTo);
  208.          var4.writeUTF(var0.cc);
  209.          var4.writeUTF(var0.bcc);
  210.          var4.writeUTF(var0.date);
  211.          var4.writeUTF(var0.contentType);
  212.          if (var0.body == null) {
  213.             var4.writeInt(Globals.bodyLen);
  214.             var4.write(Globals.byteArray, Globals.bodyStart, Globals.bodyLen);
  215.          } else {
  216.             var4.writeInt(var0.body.length());
  217.             byte[] var5 = var0.body.getBytes();
  218.             var4.write(var5, 0, var5.length);
  219.          }
  220.  
  221.          byte[] var2 = var3.toByteArray();
  222.          var4.close();
  223.          Object var8 = null;
  224.          var3.close();
  225.          Object var7 = null;
  226.          if (var0.ID < 0) {
  227.             Globals.file.seek(Globals.fileDesc, Globals.file.length(Globals.fileDesc));
  228.             Globals.file.write(Globals.fileDesc, var2, 0, 2048);
  229.             var0.ID = iRecordsNo++;
  230.          } else {
  231.             MicroMail.printInfo("update message");
  232.             Globals.file.seek(Globals.fileDesc, 2048 * var0.ID);
  233.             Globals.file.write(Globals.fileDesc, var2, 0, 2048);
  234.          }
  235.       } catch (Exception var6) {
  236.          MicroMail.printInfo("method storeMessage:" + var6.getClass().getName() + ": " + ((Throwable)var6).getMessage());
  237.          ((Throwable)var6).printStackTrace();
  238.       }
  239.  
  240.       System.gc();
  241.    }
  242. }
  243.